package br.uninove.jimage.view.components.filechooser;

import java.awt.Image;
import java.io.File;

import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.filechooser.FileView;

public class ImageFileView extends FileView {

    public String getName(File f) {
	return null; // let the L&F FileView figure this out
    }

    public String getDescription(File f) {
	return null; // let the L&F FileView figure this out
    }

    public Boolean isTraversable(File f) {
	return null; // let the L&F FileView figure this out
    }

    public String getTypeDescription(File f) {
	String extension = Utils.getExtension(f);
	String type = null;

	if (extension != null) {
	    if (extension.equals(Utils.jpeg) || extension.equals(Utils.jpg)) {
		type = "JPEG Image";
	    } else if (extension.equals(Utils.gif)) {
		type = "GIF Image";
	    } else if (extension.equals(Utils.tiff)
		    || extension.equals(Utils.tif)) {
		type = "TIFF Image";
	    } else if (extension.equals(Utils.png)) {
		type = "PNG Image";
	    }
	}
	return type;
    }

    public Icon getIcon(File f) {
	String extension = Utils.getExtension(f);
	Icon icon = null;

	if (extension != null) {
	    ImageIcon tmpIcon = new ImageIcon(f.getPath());
	    if (tmpIcon != null) {
		if (tmpIcon.getIconWidth() > 50) {
		    icon = new ImageIcon(tmpIcon.getImage().getScaledInstance(
			    50, -1, Image.SCALE_DEFAULT));
		} else {
		    icon = tmpIcon;
		}
	    }
	}
	return icon;
    }

}
